In 3G cellular systems, for Frequency Division Duplex (FDD) and Time Division Duplex (TDD) there are retransmission mechanisms in the Acknowledgement Mode of the Radio Link Control (RLC) layer to achieve high reliability of end-to-end data transmissions. The RLC layer is a peer entity in both the Radio Network Controller (RNC) and the User Equipment (UE).
A block diagram of the UMTS Terrestrial Radio Access Network (UTRAN) MAC-hs layer architecture is illustrated in FIG. 1, and a block diagram of UE MAC-hs architecture is shown in FIG. 2. The UTRAN MAC-hs 30 shown in FIG. 1 comprises a Transport Format Combination (TFC) selection entity 31, a scheduling device 32, a plurality of H-ARQ processors 33a, 33b and a flow controller 34.
The UE MAC-hs 40 comprises an H-ARQ processor 41. As will be explained with reference to both FIGS. 1 and 2, the H-ARQ processors 33a, 33b in the UTRAN MAC-hs 30 and the H-ARQ processor 41 in the UE MAC-hs 40 work together to process blocks of data.
The H-ARQ processors 33a, 33b in the UTRAN MAC-hs 30 handle all of the tasks that are required for H-ARQ to generate transmissions and retransmissions for any transmission that is in error. The H-ARQ processor 41 in the UE MAC-hs 40 is responsible for generating a positive acknowledgement (ACK) to indicate a successful transmission, and for generating a negative acknowledgement (NACK) to indicate a failed transmission. The H-ARQ processors 33a, 33b and 41 process sequential data streams for each user data flow.
As will be described in further detail hereinafter, blocks of data (or protocol data units (PDUs)) received on each user data flow are sequentially assigned to H-ARQ processors 33a, 33b. For purposes of describing the invention, it is assumed that one PDU equals one data block, although this is not necessarily the case. Each H-ARQ processor 33a, 33b initiates a transmission, and in the case of an error, the H-ARQ processor 41 requests a retransmission. On subsequent transmissions, the modulation and coding rate may be changed in order to ensure a successful transmission. The data block to be retransmitted and any new transmissions to the UE are forwarded to the scheduling device 32.
The scheduling device 32, coupled between the H-ARQ processors 33a, 33b and the TFC selector 31, functions as radio resource manager and determines transmission latency in order to support the required QoS. Based on the outputs of the H-ARQ processors 33a, 33b and the priority of a new data block being transmitted, the scheduling device 32 forwards the data block to the TFC selection entity 31.
The TFC selection entity 31, coupled to the scheduling device 32, receives the data block to be transmitted and selects an appropriate dynamic transport format for the data block to be transmitted. With respect to H-ARQ transmissions and retransmissions, the TFC selection entity 31 determines modulation and coding.
It is highly desirable for the retransmitted data blocks to arrive at the RLC entity of the receiving side (i.e., the UE) as soon as possible for several reasons. First, the missed data block will prevent subsequent data blocks from being forwarded to higher layers, due to the requirement of in-sequence delivery. Second, the buffer of the UE needs to be sized large enough to accommodate the latency of retransmissions while still maintaining effective data rates. The longer the latency is, the larger the UE buffer size has to be to allow for the UE to buffer both the data blocks that are held up and continuous data receptions until the correct sequence data block is forwarded to higher layers. The larger buffer size results in increased hardware costs for UEs. This is very undesirable.
Referring to FIG. 3, a simplified flow diagram of the data flow between a Node B (shown at the bottom of FIG. 3) and a UE (shown at the top of FIG. 3) is shown. PDUs from higher level processing are scheduled and may be multiplexed into one data block. A data block can only contain PDUs of higher layers of the same priority. A unique Transmission Sequence Number (TSN) is assigned to each data block by a scheduler. The higher layers may provide a plurality of streams of different priorities of PDUs, each priority having a sequence of TSNs. The scheduler then dispatches the data blocks to a plurality of H-ARQ processors P1B–P5B.
Each H-ARQ processor P1B–P5B is responsible for processing a single data block at a time. For example, as shown in FIG. 3, the Priority 1 PDUs comprise a sequence illustrated as B11–-B1N. Likewise, the Priority 2 PDUs are sequenced from B21–B2N and the Priority 3 PDUs are sequenced from B31-B3N. These PDUs are scheduled (and may be multiplexed) and affixed a TSN by the scheduler. After a data block is scheduled to be processed by a particular processor P1B–P5B, each data block is associated with a processor identifier, which identifies the processor P1B–P5B that processes the data block.
The data blocks are then input into the scheduled Node B H-ARQ processors P1B–P5B which receive and process each data block. Each Node B H-ARQ processor P1B–P5B corresponds to an H-ARQ processor P1UE–P5UE within the UE. Accordingly, the first H-ARQ processor P1B in the Node B communicates with the first H-ARQ processor P1UE in the UE. Likewise, the second H-ARQ processor P2B in the Node B communicates with the second H-ARQ processor P2UE in the UE, and so on for the remaining H-ARQ processors P3B–P5B in the Node B and their counterpart H-ARQ processors P3UE–P5UE respectively within the UE. The H-ARQ processes are timely multiplexed onto the air interface.
For example, taking the first pair of communicating H-ARQ processors P1B and P1UE, the H-ARQ processor P1B processes a data block, for example B11, and forwards it for multiplexing and transmitting it over the air interface. When this data block B11 is received by the first H-ARQ processor P1UE, the processor P1UE determines whether or not it was received without error. If the data block B11 was received without error, the first H-ARQ processor P1UE transmits an ACK to indicate to the transmitting H-ARQ processor P1B that it has been successfully received. On the contrary, if there is an error in the received data block B11, the receiving H-ARQ processor P1UE transmits a NACK to the transmitting H-ARQ processor P1B. This process continues until the transmitting processor P1B receives an ACK for the data block B11. Once an ACK is received, that processor P1B is “released” for processing another data block. The scheduler will assign the processor P1B another data block if available.
As graphically illustrated in FIG. 3, the scheduler knows of the release of the processor P1B by receiving the ACK/NACK, or may use some other signaling scheme that is well known in the art.
Once the receiving H-ARQ processors P1UE–P5UE process each data block, the data blocks are forwarded to the reordering buffers R1, R2, R3 based on their priority; one reordering buffer for each priority level of data. For example, Priority 1 data blocks B11–B1N will be received and reordered in the Priority 1 reordering buffer R1; Priority 2 data blocks B21–B2N will be received and reordered in the Priority 2 reordering buffer R2; and the Priority 3 data blocks B31-B3N will be received and reordered by the Priority 3 reordering buffer R3. Due to the pre-processing of the data blocks by the receiving H-ARQ processors P1UE–P5UE and the ACK/NACK acknowledgement procedure, the data blocks are often received in an order that is not sequential with respect to their TSNs. The reordering buffers R1–R3 receive the out-of sequence data blocks and attempt to reorder the data blocks in a sequential manner prior to forwarding onto the RLC layer. For example, the Priority 1 reordering buffer R1 receives and reorders the first four Priority 1 data blocks B11–B14. As the data blocks are received and reordered, they will be passed to the RLC layer.
On the receiving side, the UE MAC-hs, (which has been graphically illustrated as MAC-hs control), reads the H-ARQ processor ID, whether it is sent on a control channel such as the HS-SCCH or whether the data block has been tagged, to determine which H-ARQ processor P1UE–P5UE has been used. If the UE receives another data block to be processed by the same H-ARQ processor P1UE–P5UE, the UE knows that that particular H-ARQ processor P1UE–P5UE has been released regardless of whether or not the previous data block processed by that H-ARQ processor P1UE–P5UE has been successfully received or not.
Although, the H-ARQ process provides a mechanism wherein transmissions that are received in error are indicated to the transmitter, and wherein the retransmission of that block is combined in the receiver with previous transmissions to achieve reduced block error rates, for the combining process to work correctly in the receiver the same PDU must be applied in retransmissions as for the initial transmission. During each Transmission Time Interval (TTI), one H-ARQ process may service one data block. The initial transmission and retransmissions of a particular data block are serviced by the same H-ARQ processor.
As aforementioned, the receiving side (the UE) uses ACK or NACK to inform the H-ARQ process of the transmitting side (the Node B) whether a transmission is successful, where ACK indicates success and NACK indicates failure. One ACK/NACK corresponds to one PDU, which is the unit transmitted every TTI. The ACK/NACK is represented by one bit carried on the uplink Dedicated Physical Control Channel—High Speed (DPCCH-HS).
However, a significant problem with this prior art scheme is that a NACK from the UE could be misinterpreted as an ACK by the Node B because the transmission occurs in a fading environment. Due to the nature of radio propagation, this type of error cannot be totally eliminated. For such misinterpretations, there is currently no mechanism for the Node B to be aware of it and the UE will not receive a retransmission of the erroneously received PDU. In this prior art scheme, the failed transmission will not be detected until a higher layer message (i.e. Layer 2) is sent from the UE to the Node B.
The biggest disadvantage of relying on the higher layers to initiate retransmission of a missed PDU is the latency of transmission, since the round-trip delay of the process of retransmission is significantly longer than the timescale of the original transmissions. A Layer 2 message sent from the UE to the Node B to notify the Node B of the failed transmissions will occur only after a significant delay, on the order of 100 milliseconds or more.
In order to attempt to overcome these prior art disadvantages, it has been suggested that the UE should signal to the Node B on the DPCCH-HS when the UE detects a misinterpretation of NACK to ACK. This scheme replaces the simple binary (ACK/NACK) decision by a three (3) state decision (ACK/NACK/Revert). However, the addition of the third state (Revert) reduces the reliability of the processing at the Node B and is, therefore, undesirable.